%constant unsigned int MaxRenderTargets = Urho3D::MaxRenderTargets;
%ignore Urho3D::MaxRenderTargets;
%constant unsigned int MaxVertexStreams = Urho3D::MaxVertexStreams;
%ignore Urho3D::MaxVertexStreams;
%constant unsigned int MaxNumVertexElements = Urho3D::MaxNumVertexElements;
%ignore Urho3D::MaxNumVertexElements;
%constant unsigned int MaxNumImmutableSamplers = Urho3D::MaxNumImmutableSamplers;
%ignore Urho3D::MaxNumImmutableSamplers;
%constant unsigned int MaxTextureCoordinates = Urho3D::MaxTextureCoordinates;
%ignore Urho3D::MaxTextureCoordinates;
%typemap(csattributes) Urho3D::BufferFlag "[global::System.Flags]";
using BufferFlags = Urho3D::BufferFlag;
%typemap(ctype) BufferFlags "size_t";
%typemap(out) BufferFlags "$result = (size_t)$1.AsInteger();"
%csconstvalue("0") Urho3D::TextureFlag::None;
%typemap(csattributes) Urho3D::TextureFlag "[global::System.Flags]";
using TextureFlags = Urho3D::TextureFlag;
%typemap(ctype) TextureFlags "size_t";
%typemap(out) TextureFlags "$result = (size_t)$1.AsInteger();"
%csconstvalue("0") Urho3D::VS;
%csconstvalue("0") Urho3D::SEM_POSITION;
%csconstvalue("0") Urho3D::TYPE_INT;
%csconstvalue("0") Urho3D::FILTER_NEAREST;
%csconstvalue("0") Urho3D::ADDRESS_WRAP;
%csconstvalue("0") Urho3D::TextureCoordinate::U;
%csconstvalue("0") Urho3D::BLEND_REPLACE;
%csconstvalue("0") Urho3D::CMP_ALWAYS;
%csconstvalue("0") Urho3D::CULL_NONE;
%csconstvalue("0") Urho3D::FILL_SOLID;
%csconstvalue("0") Urho3D::OP_KEEP;
%csconstvalue("0") Urho3D::TRIANGLE_LIST;
%csconstvalue("0") Urho3D::CLEAR_NONE;
%csconstvalue("1") Urho3D::CLEAR_COLOR;
%csconstvalue("2") Urho3D::CLEAR_DEPTH;
%csconstvalue("4") Urho3D::CLEAR_STENCIL;
%typemap(csattributes) Urho3D::ClearTarget "[global::System.Flags]";
using ClearTargetFlags = Urho3D::ClearTarget;
%typemap(ctype) ClearTargetFlags "size_t";
%typemap(out) ClearTargetFlags "$result = (size_t)$1.AsInteger();"
%csconstvalue("0") Urho3D::SP_FRAME;
%csattribute(Urho3D::RawTextureHandles, %arg(bool), IsValid, IsValid);
%csattribute(Urho3D::ShaderBytecode, %arg(bool), IsEmpty, IsEmpty);
%csattribute(Urho3D::RawShader, %arg(Urho3D::ShaderBytecode), Bytecode, GetBytecode);
%csattribute(Urho3D::RawShader, %arg(Urho3D::ShaderType), ShaderType, GetShaderType);
%csattribute(Urho3D::RawShader, %arg(Diligent::IShader *), Handle, GetHandle);
%csattribute(Urho3D::ShaderProgramReflection, %arg(Urho3D::ShaderParameterReflectionMap), Uniforms, GetUniforms);
%csattribute(Urho3D::ShaderProgramReflection, %arg(Urho3D::ShaderResourceReflectionMap), ShaderResources, GetShaderResources);
%csattribute(Urho3D::ShaderProgramReflection, %arg(Urho3D::ShaderResourceReflectionMap), UnorderedAccessViews, GetUnorderedAccessViews);
%csattribute(Urho3D::GraphicsPipelineStateDesc, %arg(bool), IsInitialized, IsInitialized);
%csattribute(Urho3D::ComputePipelineStateDesc, %arg(bool), IsInitialized, IsInitialized);
%csattribute(Urho3D::PipelineStateDesc, %arg(ea::string), DebugName, GetDebugName);
%csattribute(Urho3D::PipelineState, %arg(bool), IsValid, IsValid);
%csattribute(Urho3D::PipelineState, %arg(Urho3D::PipelineStateType), PipelineType, GetPipelineType);
%csattribute(Urho3D::PipelineState, %arg(Urho3D::PipelineStateDesc), Desc, GetDesc);
%csattribute(Urho3D::PipelineState, %arg(Urho3D::ShaderProgramReflection *), Reflection, GetReflection);
%csattribute(Urho3D::PipelineState, %arg(Diligent::IPipelineState *), Handle, GetHandle);
%csattribute(Urho3D::PipelineState, %arg(Diligent::IShaderResourceBinding *), ShaderResourceBinding, GetShaderResourceBinding);
%csattribute(Urho3D::PipelineStateCache, %arg(Urho3D::ByteVector), CachedData, GetCachedData);
%csattribute(Urho3D::PipelineStateCache, %arg(Diligent::IPipelineStateCache *), Handle, GetHandle);
%csattribute(Urho3D::RawBuffer, %arg(Urho3D::BufferType), BufferType, GetBufferType);
%csattribute(Urho3D::RawBuffer, %arg(unsigned int), Size, GetSize);
%csattribute(Urho3D::RawBuffer, %arg(unsigned int), Stride, GetStride);
%csattribute(Urho3D::RawBuffer, %arg(Urho3D::BufferFlags), Flags, GetFlags);
%csattribute(Urho3D::RawBuffer, %arg(bool), IsLocked, IsLocked);
%csattribute(Urho3D::RawBuffer, %arg(bool), IsShadowed, IsShadowed);
%csattribute(Urho3D::RawBuffer, %arg(unsigned char *), ShadowData, GetShadowData);
%csattribute(Urho3D::RawBuffer, %arg(ea::shared_array<unsigned char>), ShadowDataShared, GetShadowDataShared);
%csattribute(Urho3D::RawBuffer, %arg(Diligent::IBuffer *), Handle, GetHandle);
%csattribute(Urho3D::ConstantBufferCollection, %arg(unsigned int), NumBuffers, GetNumBuffers);
%csattribute(Urho3D::RenderTargetView, %arg(Diligent::ITextureView *), View, GetView);
%csattribute(Urho3D::RenderTargetView, %arg(Urho3D::TextureFormat), Format, GetFormat);
%csattribute(Urho3D::RenderTargetView, %arg(int), MultiSample, GetMultiSample);
%csattribute(Urho3D::RenderTargetView, %arg(bool), IsSwapChain, IsSwapChain);
%csattribute(Urho3D::RenderContext, %arg(Diligent::IDeviceContext *), Handle, GetHandle);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::RenderDeviceStats), Stats, GetStats);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::RenderDeviceStats), MutableStats, GetMutableStats);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::RenderDevice *), RenderDevice, GetRenderDevice);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::RenderPool *), RenderPool, GetRenderPool);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::IntVector2), CurrentRenderTargetSize, GetCurrentRenderTargetSize);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::PipelineStateOutputDesc), CurrentRenderTargetsDesc, GetCurrentRenderTargetsDesc);
%csattribute(Urho3D::RenderContext, %arg(bool), IsSwapChainRenderTarget, IsSwapChainRenderTarget);
%csattribute(Urho3D::RenderContext, %arg(Urho3D::IntRect), CurrentViewport, GetCurrentViewport);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderBackend), Backend, GetBackend);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderDeviceSettings), DeviceSettings, GetDeviceSettings);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::WindowSettings), WindowSettings, GetWindowSettings);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderDeviceCaps), Caps, GetCaps);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderDeviceStats), Stats, GetStats);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderDeviceStats), MaxStats, GetMaxStats);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::TextureFilterMode), DefaultTextureFilterMode, GetDefaultTextureFilterMode, SetDefaultTextureFilterMode);
%csattribute(Urho3D::RenderDevice, %arg(int), DefaultTextureAnisotropy, GetDefaultTextureAnisotropy, SetDefaultTextureAnisotropy);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::TextureFormat), DefaultDepthStencilFormat, GetDefaultDepthStencilFormat);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::TextureFormat), DefaultDepthFormat, GetDefaultDepthFormat);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderContext *), RenderContext, GetRenderContext);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::RenderPool *), RenderPool, GetRenderPool);
%csattribute(Urho3D::RenderDevice, %arg(SDL_Window *), SDLWindow, GetSDLWindow);
%csattribute(Urho3D::RenderDevice, %arg(void *), MetalView, GetMetalView);
%csattribute(Urho3D::RenderDevice, %arg(Diligent::IEngineFactory *), Factory, GetFactory);
%csattribute(Urho3D::RenderDevice, %arg(Diligent::IDeviceContext *), ImmediateContext, GetImmediateContext);
%csattribute(Urho3D::RenderDevice, %arg(Diligent::ISwapChain *), SwapChain, GetSwapChain);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::IntVector2), SwapChainSize, GetSwapChainSize);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::IntVector2), WindowSize, GetWindowSize);
%csattribute(Urho3D::RenderDevice, %arg(float), DpiScale, GetDpiScale);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::FrameIndex), FrameIndex, GetFrameIndex);
%csattribute(Urho3D::RenderDevice, %arg(Urho3D::DrawCommandQueue *), DefaultQueue, GetDefaultQueue);
